From: Yang Zhang Date: Tue, 16 Apr 2013 08:36:05 +0000 (+0200) Subject: VTD: Remove the check for reserved device scope type X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~7015 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https://%22%22/%22http:/www.example.com/cgi/%22https:/%22%22?a=commitdiff_plain;h=749bc93f7a1ad47640cc7876d27641e98a08bf61;p=xen.git VTD: Remove the check for reserved device scope type Though we only have four valid types now, the new type may be added in future. It's better to remove the check and only deal with the type that we can recognize. Signed-off-by: Yang Zhang Signed-off-by: Xiantao Zhang Acked-by: Keir Fraser Add log message for this case. Signed-off-by: Jan Beulich --- diff --git a/xen/drivers/passthrough/vtd/dmar.c b/xen/drivers/passthrough/vtd/dmar.c index 370d5d665e..c810dbc531 100644 --- a/xen/drivers/passthrough/vtd/dmar.c +++ b/xen/drivers/passthrough/vtd/dmar.c @@ -283,8 +283,7 @@ static int __init scope_device_count(const void *start, const void *end) while ( start < end ) { scope = start; - if ( (scope->length < MIN_SCOPE_LEN) || - (scope->entry_type >= ACPI_DMAR_SCOPE_TYPE_RESERVED) ) + if ( scope->length < MIN_SCOPE_LEN ) { dprintk(XENLOG_WARNING VTDPREFIX, "Invalid device scope.\n"); return -EINVAL; @@ -409,6 +408,13 @@ static int __init acpi_parse_dev_scope( } break; + + default: + if ( iommu_verbose ) + printk(XENLOG_WARNING VTDPREFIX "Unknown scope type %#x\n", + acpi_scope->entry_type); + start += acpi_scope->length; + continue; } scope->devices[didx++] = PCI_BDF(bus, path->dev, path->fn); start += acpi_scope->length; diff --git a/xen/include/acpi/actbl2.h b/xen/include/acpi/actbl2.h index a28226ab11..87bc6b3f56 100644 --- a/xen/include/acpi/actbl2.h +++ b/xen/include/acpi/actbl2.h @@ -303,7 +303,6 @@ enum acpi_dmar_scope_type { ACPI_DMAR_SCOPE_TYPE_BRIDGE = 2, ACPI_DMAR_SCOPE_TYPE_IOAPIC = 3, ACPI_DMAR_SCOPE_TYPE_HPET = 4, - ACPI_DMAR_SCOPE_TYPE_RESERVED = 5 /* 5 and greater are reserved */ }; struct acpi_dmar_pci_path {